// ============================== 导入依赖 ============================== //

import { Message } from 'element-ui'

// ============================== 导出同步更新 ============================== //

export default {
  // —————————————————————————————— 设置 —————————————————————————————— //

  /**
   * 设置单项
   */
  setOne(state, one) {
    state.one = one ? { ...one } : { ...state.INIT_ONE }
  },

  /**
   * 设置表单
   */
  setRefForm(state, refForm) {
    state.refForm = refForm || null
  },

  // —————————————————————————————— 监听 —————————————————————————————— //

  /**
   * 开始远程单项
   */
  startOne(state) {
    state.readyOne = false // 关闭就绪
    state.needOne = true // 打开远程
  },

  /**
   * 完成远程单项
   */
  completeOne(state, data) {
    let newOne = null
    let message = ''

    // data 为 [newOne, message]
    if (Array.isArray(data)) {
      if (Object.prototype.toString.call(data[0]) === '[object Object]') newOne = data[0]
      if (typeof data[1] === 'string') message = data[1]
    }
    // data 为 newOne
    if (Object.prototype.toString.call(data) === '[object Object]') newOne = data
    // data 为 message
    if (typeof data === 'string') message = data

    if (newOne) state.one = { ...newOne }
    if (message) Message.success({ message })

    state.needOne = false // 关闭远程
    state.readyOne = true // 打开就绪
  },

  /**
   * 终止远程单项
   */
  stopOne(state, e) {
    const { message } = e
    if (message) Message.error({ message })

    state.needOne = false // 关闭远程
    state.readyOne = false // 关闭就绪
  },
}
